

const transformConst: IDataTransform[] = [
   
];

export interface IDataTransform {

    /**表名字 */
    name: string;

    /**字段名字 */
    key: string;

    /**处理表数据，动态处理 */
    transform(value: any): any;
}

/**
 * 注册一个数据表字段处理函数，表初始化时会调用
 * @param data 
 */
export function rigisterTransform(data: IDataTransform) {
    transformConst.push(data);
}

/**
 * 动态处理表字段
 * @param name 表名字
 * @param key 表字段
 * @param value 字段原始值
 * @returns 返回处理之后的值
 */
export function transformValues(name: string, key: string, value: any) {
    let transform = transformConst.find(v => v.name === name && v.key === key);
    if (transform && transform.transform) {
        return transform.transform(value)
    }

    return value;
}